Skip to content

Conversation

@mmosca
Copy link
Collaborator

@mmosca mmosca commented Feb 20, 2025

No description provided.

mmosca and others added 13 commits February 25, 2025 11:08
Small release to add DJI_NATIVE osd option, comming in an imminent firmware
update for Goggles 2/3/N3 and Integra.
Prepare for a small 8.0.1 release
This PR moves the **Active** column in the programming framework. The functionality doesn't change. But the order is easier to follow, thinking of the **Active** in terms of _if_ statements.

It won't matter to non-programmers. But is better for programmers.
Leds: don't hide option to control color by RC channel
@sensei-hacker sensei-hacker merged commit 5422e56 into master Nov 20, 2025
13 checks passed
@qodo-merge-pro
Copy link

PR Compliance Guide 🔍

Below is a summary of compliance checks for this PR:

Security Compliance
🟢
No security concerns identified No security vulnerabilities detected by AI analysis. Human verification advised for critical code.
Ticket Compliance
🎫 No ticket provided
  • Create ticket/issue
Codebase Duplication Compliance
Codebase context is not defined

Follow the guide to enable codebase context checks.

Custom Compliance
🟢
Generic: Meaningful Naming and Self-Documenting Code

Objective: Ensure all identifiers clearly express their purpose and intent, making code
self-documenting

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Error Handling

Objective: To prevent the leakage of sensitive system information through error messages while
providing sufficient detail for internal debugging.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Secure Logging Practices

Objective: To ensure logs are useful for debugging and auditing without exposing sensitive
information like PII, PHI, or cardholder data.

Status: Passed

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Comprehensive Audit Trails

Objective: To create a detailed and reliable record of critical system actions for security analysis
and compliance.

Status:
No audit logs: The new code adds video system types and UI class toggles without any logging of critical
actions such as mode changes, making it unclear if audit trails for such changes exist
elsewhere.

Referred Code
    $('.preview').toggleClass('preview_hdzero cut43_left', (video_type == 'HDZERO'))
    $('.third_right').toggleClass('preview_hdzero_side', (video_type == 'HDZERO'))
    // -- BFHDCOMPAT
    $('.third_left').toggleClass('preview_bfhdcompat_side', (video_type == 'BFHDCOMPAT' || video_type == 'DJI_NATIVE'))
    $('.preview').toggleClass('preview_bfhdcompat cut43_left', (video_type == 'BFHDCOMPAT' || video_type == 'DJI_NATIVE'))
    $('.third_right').toggleClass('preview_bfhdcompat_side', (video_type == 'BFHDCOMPAT' || video_type == 'DJI_NATIVE'))

    OSD.GUI.updateGuidesView($('#videoGuides').find('input').is(':checked'));
};

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Robust Error Handling and Edge Case Management

Objective: Ensure comprehensive error handling that provides meaningful context and graceful
degradation

Status:
No parsing checks: The updated parsing of servo rules changes integer reads to unsigned without additional
validation or error handling for malformed data buffers, leaving edge cases unhandled if
upstream data is invalid.

Referred Code
if (data.byteLength % 6 === 0) {
    for (let i = 0; i < data.byteLength; i += 6) {
        FC.SERVO_RULES.put(new ServoMixRule(
            data.getUint8(i),
            data.getUint8(i + 1),
            data.getInt16(i + 2, true),
            data.getUint8(i + 4),
            data.getInt8(i + 5)
        ));

Learn more about managing compliance generic rules or creating your own custom rules

Generic: Security-First Input Validation and Data Handling

Objective: Ensure all data inputs are validated, sanitized, and handled securely to prevent
vulnerabilities

Status:
Input validation: The MSP data parsing reads bytes from external/input data without explicit validation or
range checks after changing to unsigned reads, which may pose risks if data originates
from untrusted sources.

Referred Code
if (data.byteLength % 6 === 0) {
    for (let i = 0; i < data.byteLength; i += 6) {
        FC.SERVO_RULES.put(new ServoMixRule(
            data.getUint8(i),
            data.getUint8(i + 1),
            data.getInt16(i + 2, true),
            data.getUint8(i + 4),
            data.getInt8(i + 5)
        ));

Learn more about managing compliance generic rules or creating your own custom rules

Compliance status legend 🟢 - Fully Compliant
🟡 - Partial Compliant
🔴 - Not Compliant
⚪ - Requires Further Human Verification
🏷️ - Compliance label

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants